Manifest: A 1-file micro-back end
github.com
github.com
Want to allow users to set their own name? I hope you're OK with any user being able to update any field of any other user too!
Added a new entry and didn't specify a policy for every single available action? They default to unauthenticated access!
> If no policy is specified for a rule, the access is public for the related action, thus anyone can manage records.
Aaaaaa!
pocketbase has helped me get a few boutique websites and systems out so far with incredible speed and a joy that I rarely feel near web these days.
Though I should remain open-minded. An even simpler backend would be nicer (maybe). Also the AI-friendly approach looks promising.
It feels a bit mean to write this, but whenever someone reinvents a database this is the first thing I look to gain some confidence the authors understood what they were getting into.
Probably best to stick to sqlite instead!
Not for production use, mind you, just like, say I have a library of books or blu-rays and want to create a catalogue of them (with images, so a spreadsheet is a no-go). Being able to just bang out a single-file config and have an impromptu CRUD admin would be awesome.
PocketBase is great too. Manifest brings something different: it's fully code-based, so you can stay in your IDE, use AI tools like Copilot or Cursor to build your backend, and keep everything versioned in Git. It fits naturally into dev workflows, and we’ve got more coming soon on the AI side, both around AI and new features.
It would be nice if the point of the emoji was explained anywhere in the docs but I couldn't find it anywhere
The use of emojis looks quite similar to the way parameter/argument labels are introduced in Swift: in the function signature, you use two names (separated by a space) before the colon, instead of one. So, is this second part a shorthand alternative name, or just a visual comment, or?..
ENTITY_DECLARATION ::= NAME [SPACE COMMENT] COLON ...
ENTITY_DECLARATION ::= NAME [SPACE SINGLE_EMOJI_COMMENT] COLON ...
ENTITY_DECLARATION ::= NAME1 [SPACE NAME2] COLON ...
ENTITY_DECLARATION ::= REGULAR_NAME [SPACE EMOJI_NAME] COLON ...
What is it?Don't get me wrong, I am not opposed to emojis on principle, they are just 1) a tad too outstanding in the text for my taste, 2) a tad too difficult to enter unless you're on a mobile keyboard, 3) I personally would rather not edit program source code/configs on mobile.
Windows and macOS both have great on-screen keyboards (OSK)/input method editor (IME) for emoji. Many (most?) Linux desktop environments also provide one. On Windows it is Win+. or Win+; and on macOS it is Ctrl+Cmd+Space and on Gnome it is Ctrl+Shift+E,Space or Super+E.
Bwahahaha. Sorry, I’ve just imagined the poor sod who has to implement this grammar and has to decide whether presentation selectors or (potentially unknown) ZWJ sequences or (potentially unknown) letter-pairs denoting flags count parts of as single emoji (in theory they do[1], but good luck figuring out what tables you need).
> the way parameter/argument labels are introduced in Swift: in the function signature, you use two names (separated by a space) before the colon, instead of one
Side note: Swift’s style likely comes from Objective-C, which in turn comes from Smalltalk.
# My Pokemon backend
## Entities
Let's start by defining my entities, I want to model Pokemons, so I'll just add this:
```yaml
Entities:
- Pokemons:
- Bulbasaur...
```You shouldn't use such a hashing function for password storage. Calculating password hashes should be computationally expensive, not cheap.
Nuff said, overall it looks like a cool project to toy around with, but not something you should be using to build a product with yet.
Thanks a lot for pointing it out. I just created an issue to track this, and we’ll fix it shortly: https://github.com/mnfst/manifest/issues/361
One quality metric that I've noticed my brain has developed over the years is how deep in the directory hierarchy I have to dive to finally find some actual code amidst the mess of config files, readmes, yaml things, json metadata and various other crap that carry essentially no semantic.
It's been surprising how accurately this metric measures the overall quality of the project.
Large Java codebases are one of the worst offenders in that regard.
Unfortunately by this metric, and independent of anything else, this project does not fare well at all ... I give you my first attempt at actually finding the code, depth=
https://github.com/mnfst/manifest/blob/master/packages/core/...
depth=6 below project top dir (ignoring github-added crap)
Just interested as I like the ease of use and free entry level, especially for small projects.
Also: interesting idea, will have a look at it some time.
But you are right we should explain it somewhere !
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
import Yesod
data App = App
mkYesod "App" [parseRoutes|
/ HomeR GET
|]
instance Yesod App
getHomeR :: Handler Html
getHomeR = defaultLayout [whamlet|Look at me. Just one file.|]
main :: IO ()
main = warp 3000 App