Leren

Introductie

Wat Nimbly is, wat full-stack atomic betekent en hoe een project in elkaar zit.

Nimbly is een full-stack atomic design system voor digitale producten op maat, van gerichte websites tot portalen, dashboards en bedrijfsapplicaties. Het omvat de hele applicatie: pagina's en templates, data en het beheer ervan, de API, gebruikers en rechten, media, geplande jobs en agents.

Wat full-stack atomic betekent

Atomic betekent fijnmazig. Een Nimbly-applicatie bestaat uit kleine bouwstenen, elk met één taak: een template maakt markup, een library bevat bedrijfslogica, een resource beschrijft een soort data. Bouwstenen vormen samen features, en features samen het product.

Dat geldt voor de hele stack, niet alleen voor de interface. Een projectenfeature is een projects-resource, de logica die records selecteert, een kaarttemplate en de pagina die ze toont. Elk onderdeel kun je los hergebruiken, vervangen of uitbreiden.

Hoe fijnmazig je werkt, bepaal je zelf. Een pagina kan één template met gewone HTML zijn, of een samenstelling van veel kleine. Nimbly levert geen kant-en-klare componentenbibliotheek: elk project stelt zijn eigen interface samen, en bevat zo precies de structuur en code die het nodig heeft.

Begin bij de pagina of bij de data

Je kunt top-down werken:

  1. Schrijf een pagina als template, met je eigen HTML en classes.
  2. Maak teksten bewerkbaar, zodat redacteuren ze op de pagina zelf aanpassen.
  3. Herhaalt zich iets, zoals projecten, definieer het dan als resource in één JSON-bestand. Het overzicht in de admin, de formulieren om toe te voegen en te bewerken, de API, rechten en geschiedenis komen met die definitie mee.
  4. Selecteer de records in de pagina en herhaal voor elk een kaarttemplate.

Of bottom-up: definieer eerst de data en bouw de pagina's daarop. Beide leiden tot dezelfde structuur.

Elke route is een leeg canvas

Een route doet wat jij wilt. Nimbly voegt geen eigen layout, omhulling of formaat toe:

  • Eindig de template met [#html#] en je krijgt de standaardpagina, met de head, de assets en inline bewerken voor redacteuren.
  • Schrijf je eigen HTML-document en je krijgt precies dat. Zie Je eigen HTML.
  • Antwoord met JSON, XML, platte tekst, CSV, een bestand of een PDF. Zie Wat een route teruggeeft.

Nimbly wordt geleverd met Tailwind CSS, DaisyUI en Alpine.js, en de admin is daarmee gebouwd. Voor je eigen routes zijn ze een standaard, geen verplichting: gebruik React, Vue, gewoon JavaScript of een andere toolset op één route of op de hele site. Zie Frontendstack.

Je applicatie en het framework

Een Nimbly-project heeft twee delen. core/ is het framework, gedeeld door elke Nimbly-applicatie. ext/ is je applicatie: routes, templates, libraries, resources, configuratie en thema.

Elke template, library, route en elk statisch bestand wordt eerst in ext/ gezocht, daarna in core/. Een bestand met dezelfde naam in ext/ vervangt de core-versie, en nieuwe bestanden staan ernaast. Core zelf blijft onaangeroerd, zodat de updates blijven binnenkomen.

Code, content en data zijn gewone bestanden. Records staan als JSON-bestanden in de repository van de applicatie, dus content krijgt versiebeheer samen met de code en een clone brengt de hele site mee; zie Data als bestanden. Een request laadt alleen de bouwstenen die zijn route gebruikt.

Minder stack, meer product

Nimbly laat de databaseserver, de ORM en migraties weg. Records zijn JSON-bestanden in Git, naast de code die ze gebruikt, en een resourcedefinitie is genoeg voor het beheer, de API en de rechten. Dat haalt een hele laag onnodige complexiteit weg: je krijgt de snelheid van gegenereerd beheer samen met de transparantie, het versiebeheer en de netheid van eigen full-stack code. Het past bij bureaus, zelfstandige developers en ontwikkelen met AI. Zie Data als bestanden.

Verder lezen

Bekijk deze pagina als Markdown