Sign inSign up

softinstigate/facet

By softinstigate

•Updated about 2 months ago

Facet is the data-driven Web framework. Turn your API into HTML, no code required.

Image
Languages & frameworks
Developer tools
Content management system
0

908

softinstigate/facet repository overview

⁠What is Facet?

Facet⁠ transforms REST APIs into web interfaces using simple HTML templates. You already have the API—just add templates where you want HTML.

The core idea: Your API structure is your site structure.

Your API:
├── /shop/products     → Returns JSON
└── /shop/products/123 → Returns JSON

Add templates:
└── templates/
    └── shop/
        └── products/
            ├── list.html   → Renders /shop/products as HTML
            └── view.html   → Renders /shop/products/123 as HTML

Result:
├── /shop/products     → HTML for browsers, JSON for APIs
└── /shop/products/123 → HTML for browsers, JSON for APIs

No routing files. No controllers. No duplicate logic. Just drop templates where your data lives.

Try it yourself (quickstart):

# Start the quickstart stack (MongoDB + Facet)
docker compose up

# If you want to build a local image instead:
# mvn -pl core -am -DskipTests package
# docker compose up --build

# Visit in browser (login required)
open http://localhost:8080/

Note: the root docker-compose.yml builds a local image by default. To use the published image, replace the build: section with image: softinstigate/facet:latest.

Login with admin / secret, then visit /mydb/products to see the seeded data rendered by the default template.

Add a product via curl and refresh the HTML list:

curl -X POST http://localhost:8080/mydb/products \
  -u admin:secret \
  -H "Content-Type: application/json" \
  -d '{"name":"Desk Lamp","price":49,"category":"Home"}'

open http://localhost:8080/mydb/products

Visit the GitHub repo⁠ for more information.

Tag summary

Content type

Image

Digest

sha256:c97dae84f…

Size

151.2 MB

Last updated

about 2 months ago

docker pull softinstigate/facet