01
Soliman Al Halaby Software EngineerSelfer is a CMS-like web application powered by the Notion API. Built with React and TypeScript on the front-end and Symfony on the back-end, it allows users to generate and publish static websites directly from their Notion workspaces. The entire project was developed in just 10 days.
01 /
Flexible
Flexible
Once connected to a Notion account, the back-office displays all authorized workspaces. Users can browse their pages and blocks, then customize the styling: colors, fonts, and layout are all adjustable. The configuration is managed through React Context and persisted in the database, which generates the corresponding static site.
The workflow is straightforward: create a page in Notion, fill it with content blocks (callouts, images, text), and Selfer pulls everything through the Notion API. From there, users can fine-tune their content in the app and publish their static site with a single action.

02 /
Code
Code
The back-end is built with Symfony backed by a MySQL database. API routes handle all communication with the front-end. Incoming data is validated and sanitized before being persisted, ensuring only expected content reaches the database.
The front-end uses React with TypeScript, a natural choice given the variety of content types being manipulated. Data is fetched through the API routes and managed via multiple React Contexts, which are shared and updated across components to keep the state consistent throughout the application.
