#bretwordpress is supposed to be for non technical people but then it goes and does confusing things :(
#GWGSempress is a Wordpress theme pfefferle created.
#tantekbret - it was less confusing than other solutions at the time
#GWGbret: I think webkernel is trying to mark up inside the post editor. Wouldn't that be confusing on most posting platforms?
#tantekit only looks confusing because the other solutions have largely disappeared
#bretGWG: i get why it cleans the input, but its magic, so goes over peoples heads when they are learning
#tantekGWG, would be useful to have a stub page on sempress for that
#tantekalso - for your theme that you created to do microformats2!
#GWGbret: I started in here, talking about lowering the bar for existing Wordpress users to convert their site over to Indieweb
musigny joined the channel
#bretyeah don't get me wrong, wordpress is totally important
#GWGSo, all my projects have always been to scratch my itch of getting it running, but I've tried to make the implementation open enough for others to be able to install
#KartikPrabhuKevinMarks__: my only problem with the article is this: "Your life so far may have given you some idea what your prospects might be if you tried to become a mathematician" errr nope!
#waterpigs.co.ukedited /friendly (+326) "/* How to make your site Indieweb Friendly */ removed duplicate, added linking domain name with content, subscriptions to indieweb sites" (view diff)
#KevinMarksWondering if this is actually the killer feature for ello "you don’t get notified when someone responds to you, because there’s no system for notifications."
infpetal, friedcell1, pfefferle, musigny, squeakytoy and Sebastien-L joined the channel
#ben_thatmustbemei should do that though, just make my post UI just an old style form, all just text, tables, and a white background. put in some CSS circles on the left to represent the 3 holes, and I'm good to go, haha
#GWGtantek: You may remember this discussion at IWC NYC when I was interpreting pfefferle's code to add in the rendering, and generated the debate over the official/unofficial nature of the markup.
#cuibonobothen again, the APIs I interact with are RESTful. so instead of sending the verb to /micropub, you would send it to domain.com/url/you/want/
#kylewmI'd guess sending webmentions to commenters would mess up just about every implemetnation right now (they'd interpret the in-reply-to post as a reference to the post itself)
#ben_thatmustbemetantek, i thought about it. I specifically don't allow updating of reply-context though. I record content at first time of parse. I'd like to update this to store the exact data at time of reply though. but alas, that could get messy
npdoty joined the channel
#cuibonoboso following the idea that i'm not actually modifying the page directly, but instead creating a post on /micropub so that your server can do the work on my behalf, POST makes sense
#kylewmben_thatmustbeme: cool, but does that mean you would reject webmentions from sites that don't use microformats?
moizsyed joined the channel
#ben_thatmustbemekylewm. checking my code, i think it would just interpret as a mention
#ben_thatmustbemeactually i just use the php libs from aaronpk, which i am not sure what it would do with a non-mf2 page. I think it might create it as a mention with everything except the URL blank
#ben_thatmustbemesince it won't succeed getting any author info, etc
#tantekthe target URL is ideally inside p-comment h-cite markup - that's how you tell what you're getting a mention of
#davidmeadI am. WP has been good so far but it’s starting to “get in the way” a little. I’ve been trying Known to see if it can replace WP as my main blog
#GWGdavidmead, I am sticking with Wordpress myself
#Loqibenwerd: tantek__ left you a message 2 hours, 15 minutes ago: I found a good tablet UI for Known blogpost writing and scheduling: http://instagram.com/p/tptBeXG64g/ 😉
#tantekand the weekly schedule nature - people like having some structure to place ideas for blogging and then having a reminder / nudge to blog them on a schedule
#GWGThe one Jeremy Zilar, who hosted IWC NYC was working on
#GWGI think I just heard someone call that Imposter Syndrome
#tantekand frankly, there are so many other things I'd rather be doing (in the physical world), that I do like the pressure to continuously make things *here* easier / simpler / quicker to implement and deploy
#davidmeadOne thing I do like with Known is the ‘bookmarklet’ they have. makes it easier to reply to tweets and post bookmarks etc.
#tantek.comedited /Falcon (+666) "/* Working On */ indie-action web component to webaction URL per voxpelli example" (view diff)
#davidmeadGWG: problem i found with ‘press this’ is it doesn’t include the Social plugin. One of the main issues with the app. It’s fire, but I can’t edit it beforehand
#davidmeadi really should post the list of the conections that break between app, web. and bookmarklets
#tantekdavidmead: good summary of the problem: "the hurdle for me is copy & pasting tweet url’s into [my posting UI] to reply to them. Known['s bookmarklet] makes that a lot easier"
#aaronpk_cuibonobo: I'm curious about this line "clients and servers are typically tightly coupled in RPC architectures"
#aaronpk_micropub and webmention are explicitly not RESTful, which has allowed a much greater degree of flexibility in backend architecture (for example allowing even static sites to use webmention and micropub)
#aaronpk_so where does the tight coupling come into play?
#cuibonoboaaronpk_: micropub is actually a good example of an RPC: to create a note i need to know to add `content`, `category`, and `syndicate-to` parameters
#aaronpk_what would the REST equivalent look like?
wolftune joined the channel
#aaronpk_is there some way with REST where you don't need to know parameter names?
#cuibonoboin a REST equivalent, performing a GET on a /notes endpoint will show you what a typical note looks like, and then you can use POST to create a similar document
#cuibonoboand for example, if you want to update a note, you would PATCH the updated data to the URL of the note you'd like to update
#aaronpk_that's actually basically the idea with micropub too. the parameter names are the microformat properties, so should all be discoverable that way essentially
#cuibonoboa more RESTful approach would give more importance to the endpoints of the resources that you actually want to modify. so instead of POSTing to /posts/new, you would POST to /notes (or whatever)
#cuibonoboand instead of sending updates via POST to /micropub, you would PATCH to yourdomain.com/notes/noteid
#aaronpk_I am firmly against RESTful URLs for micropub (see note about static sites and greater implementation flexibility above), but would be happy to incorporate some other design ideas from REST
#cuibonoboaaronpk_: of course. it would be pretty much impossible to implement this on a static site. i personally prefer RESTful architectures because it turns permalinks into objects to be manipulated by the usual HTTP verbs we know and love
#ben_thatmustbememy thoughts on rest. its nothing that but the usual GET/POST, you could easily implement the exact same thing with ?op=patch or something of that matter, and they aren't always supported. REST is just a published standard, we are making our own standard. Thats all
#aaronpk_I do like the self-documenting aspect of REST APIs
#cuibonoboaaronpk_: i suppose it could! but as the current implementation works, if i encounter <link rel="micropub" href="https://something.com/link">, how do i know what that means?
#aaronpk_so we could instead of defining micropub properties in the spec, we could say that any properties present in an h-entry can be used to create a new h-entry
#cuibonobothat's what i mean by 'tightly coupled'. i need to know that 'micropub' is a thing
#aaronpk_(with REST you need to know that the server supports REST, which afaik isn't even discoverable!)
#aaronpk_I'm just saying that it seems like a roughly equivalent amount of knowledge between client and server is needed to support REST, so it doesn't seem any less tightly coupled to me
#ben_thatmustbememy problem with REST is that to implement it you have to capture all URLs coming in. with MP your pages can be all static aside from your one MP endpoint page.
#KartikPrabhuaaronpk_ maybe micropub can have a RESTful version too
moizsyed joined the channel
#ben_thatmustbememakes for a much easier implementation IMO. easier implementation means more support
#cuibonoboand if you want to be friendly to users with static sites, RESTful isn't really an option
#ben_thatmustbemeKartikPrabhu I don't see the two being really interchangeable at all. someone can certainly use a restful interface to CRUD all their data, but I think at that point its just a REST api
#KartikPrabhucuibonobo: I have been thinking about doing micropub but where you can just edit/add something inline
#dlykeAlthough I have recently been thinking about all of these $1/mo limited RAM VM packages, and whether a special-purpose low resource web server tailored around IndieWeb-ish protocols might be the right way to go.
#KartikPrabhuaaronpk_ I go to my /notes site and login there will be an interface to add a new note right there on top of my h-feed. Similarly, I click an edit button on current note and I can edit it right there. But somehow with micopub type stuff
#aaronpk_ah yeah sure, you can totally do that with micropub
#KartikPrabhuI basically want my site to be the editor interface too. Instead of inventing a new one.
#ben_thatmustbemei have it coded up to read in a post from the DB, so if i'm logged in (owner only) and go to /new?id=<post_id> it autfills all the fields. I figure its easier to keep all the MP client stuff centralized
#ben_thatmustbemeI'm hoping to make it have JS pull in mf2 data, so anyone can edit, just enter URL and it pulls down all content for you
#cuibonobokylewm: not necessarily. you can specify your Accept header to be whatever format you choose. the thing with a RESTful server is that it isn't necessarily stored as JSON, XML, HTML, or what have you
#cuibonobothe server is simply responding in a way that you've specified, but the internal representation may be completely different
#cuibonoboaaronpk_: this is what i'm doing for my own site. i haven't pushed my stuff to my actual website yet, but the dev version of my server can respond in XML, JSON, or HTML, depending on your Accept header
#aaronpk_cuibonobo: sweet. maybe I will try it out!
moizsyed joined the channel
#cuibonoboaaronpk_: at the moment i've got GET working for everything. POSTing and PATCHing nested data is hard. Also, how do i represent OPTIONS? very sticky
#cuibonoboi guess that's just a header response, but still
#aaronpk_you could always avoid nested data by requiring all nested data have its own URL
#tantekcuibonobo: I believe there were proposals (e.g. for HTML5) to extend HTML forms to support more HTTP verbs, however, the lack of apparent real world (public web) usage of them made them uninteresting / hypothetical more than practical.
#KevinMarks_However, the contacts models were different - gmail added everyone you ever emailed to contacts so that autocomplete worked
#tantekalso observed that the industry was advancing the state of the art faster / better than PhDs (with the exception of a few fields like NLP, computer vision, robotics)
#KevinMarks_But iPhone contacts were manually curated by users
#aaronpk_google contacts pretty much screwed up my entire idea of an address book because of the auto-entered gmail contacts
#tantekKevinMarks: please do not conflate this with the contacts kerfluffle.
#KevinMarks_They didn't like all those bare email addresses
#aaronpk_ever since I started using gmail I stopped maintaining an address book at all
#tantekhorrible example. no one does contacts across 2+ devices well.
#reedstrmI don't actually _want_ to use a calendar event as a primary data type to manipulate- I want to have a date based view of stuff I hgave to do.
#tantekben_thatmustbeme: that's what archive.org is for ;) which stores data in ...
#reedstrmHave heard a certain pundit on a podcast who uses his tween daughter and her friends as leading indicators. They consider FB a way to talk to Grandma. Using Dad's account.
#ben_thatmustbemei believe loqi uses a DB correct \'; select * from logs;
#tantekreedstrm: agreed. that's a pretty big beef too.
#petermolnarThor should be a bit dumber, but much stronger
#dlykereedstrm: Friend's teen daughter: "Facebook is where I talk to people I know, but don't like, Tumblr is where I talk to people I like but don't know."
#ben_thatmustbememaybe Thor would not talk, just do the autovoice bits we were talking about
#reedstrmI had the privilege of eating dinner seated next to Brewster Kahle several (many?) years ago, at a conference. He was an engaging dinner companion.
#LoqiIndieArchive is a project to collaboratively grow an archive of pages replied to (possibly also mentioned) in indie web posts http://indiewebcamp.com/IndieArchive
#benwerdben_thatmustbeme We have a (community-written) Diigo POSSE plugin for bookmarks.
#tantekcuibonobo: ^^^ how to do that in a collaborative and distributed manner :)
#tantek.comedited /database-antipattern (+1083) "/* Fragile */ subheads, clarify MySQL instance, add DB connection loss with Keybase and WordPress citations" (view diff)
#reedstrmAnd don't underestimate their legal savvy: they've gotten themselves certain exemptions for copyright purposes
#reedstrmI'd think the correct approach for them would be to archive the WHOIS data for domains as well, and only honor robots.txt if the ownership matched.
#ben_thatmustbemereedstrm, i've made loqi repeat things in pig latin that way
#benwerdben_thatmustbeme: Good, thanks! Concentrating on features for our hosted Pro accounts, as well as a few interesting general functions that address common questions
#tantekcuibonobo: I think aaronpk and barnabywalters have indiearchive implementations of various degrees
#benwerdben_thatmustbeme: Best thing has been the feedback button in the top right of every page; we get a lot of emails every day, and they're all super useful.
#ben_thatmustbemebenwerd, excellent. its really nice to have something polished out there
#benwerdreedstrm: Leo's show blew us away. It's responsible for lots of interest - although we also had demo day the very next day, as well as Gigaom and Wired.
#reedstrmAh, so a well orchestrated PR campaign, then.
infpetal and KevinMarks___ joined the channel
#benwerd"Orchestrated" is a strong word, but it worked out really well :)
#reedstrmHmm, thinking about thinkup in relation to indieweb ...
KartikPrabhu joined the channel
#cuibonobore: indiearchive, given all the parameters / algorithms that services currently employ to determine the content to show you, i wonder if at least the access location should be stored as well
#cuibonobotantek: this is an interesting example. i had concluded to simply flatten my parameters and use dot notation. i.e. location.latitude, location.longitude
#ben_thatmustbemecontinues to watch brid.gy fixes by way of his e-mail
#bret.iocreated /OWL (+163) "Created page with "<dfn>OWL</dfn> is the Web Ontology Language, a layer above RDF to define the classes and properties used in RDF, as well as to describe the relations between them."" (view diff)
#tantekbtw Brett (onebigfluke) is co-inventor/author of PuSH
#tantekso he has some familiarity with this space :)
#cuibonobotantek: are there useless verbs? sure. replace DELETE with POST? no.
#tantekcuibonobo: why not? seems to work for webmention comment CRUD
#tantekin fact it keeps webmention *much* simpler by doing so
#cuibonobothe beautiful thing about verbs is that they describe action. removing verbs just pushes the vocabulary to either the object you're sending or the headers
#cuibonoboi honestly can't fathom why anyone would advocate for *removing* vocabulary.
#tantekaaronpk - but how do you want to present it? publish some without explicit markup (e.g. in a note) and then we can analyze based on real world example(s)
#tantekand then work out vocab backwards from that
#kylewmcuibonobo: it makes sense to me to limit the HTTP verbs since you couldn’t possibly enumerate all the possible verbs some application might want. PUT, PATCH, DELETE seem very likely to be misused or bastardized for some slightly different purpose than intended
#bretaaronpk_: yeah im saying make at most 1 entry per day that is a food histogram
#cuibonobokylewm: admittedly, I've only used HEAD, GET, POST, PATCH, and DELETE. those map nicely to CRUD too. i feel like the author of this article was just hungry for clicks.
#aaronpk_bret: interesting. that sorta seems like a collection tho.
#bretaaronpk_: unless you wanted to tie in coffeetime with these meal metrics, (ie sending webmentions about 'dat coffee' so and so owes you) i dont see the purpose for having urls for each food item
#aaronpk_bret: each item has a timestamp of when I ate it
#KartikPrabhuaaronpk_ I know and that is not my goal anyway
#aaronpk_right now micropub defines two parameters, "h" and "url"
#aaronpk_everything else is part of the content of the post
#KartikPrabhuif I am making a post interface for my site, I want a delete action
#cuibonobowe were discussing before that making all of your URLs responsive like that would be impossible on a static site. so micropub is responding to the situation in which it would be used
#tantek__short answer, looks like the model of how PUT and DELETE in a <form> should work is undefined, and the door has been left open to someone (anyone) writing up an HTML5 extension specification that defines their behavior and then tries to get browser interested in implementing them.
#aaronpk_any word that is chosen for the parameter name cannot be used as a content field of the post
#tantek__KartikPrabhu - " why even have those verbs in HTTP then?" exactly
#tantek__hence Brett (onebigfluke) proposal to drop them
#KartikPrabhuoh ok tantek__ why have POST, lets use one verb REQUEST
#tantek__KartikPrabhu - POST is well defined, interoperably implemented
#cuibonoboKartikPrabhu: PUT and DELETE have a specific semantic meaning and when I sent a request with those methods, the server should always respond in the same way
#tantek__much easier to advocate dropping things that never made it to the user visible bits
#KartikPrabhutantek__ no one uses it because there is no spec, there is no spec because no one uses it
#cuibonoboKartikPrabhu: POST on the other hand, doesn't have that limitation. it's expected that the state of the server will continuously change if i continue sending POST requests
#cuibonobo(which is why forms will warn you about sending data again)
#tantek__KartikPrabhu - you are referring to the chicken/egg problem. however note that plenty of standards have overcome that, so it's not a reasonable excuse.
#KartikPrabhucuibonobo: yeah. I know you can't mung everything into one verb, :)
#tantek__hence my point about if you really care, start with writing an HTML5 extension spec for PUT/DELETE - others may be interested as well
#tantek__might want to start with a use-case for having such FORM functionality in HTML
#KartikPrabhutantek__ it seems people who write specs are not interested in using it, and people who want to use it are not interested in witing a spec so it will be in this limbo forever
#tantek__the separation of functionality between HEAD, GET, POST seems quite nice and minimal
#KartikPrabhutantek__ I want to make a button to delete a post
#tantek__my point is that that conceptual separation into only 3 categories of action is quite elegant
#tantek__and good design from a modularity perspective
#tantek__and leave the spectrum of what *kinds* of changes you want to make up to another layer
#tantek__KartikPrabuhu "to delete a post" - you'd use an HTTP POST - with additional semantics
#cuibonoboas i think about it more, i begin to realize that the needs of people and the needs of machines are different. removing everything but HEAD, GET, and POST addresses the needs of people (who are able to reason about sending form data twice)
#cuibonobomeanwhile, a machine can't reason about anything. if a machine is unsure that a request was sent, it can simply PUT again.
#KartikPrabhutantek__ too many turtles for me already
#tantek__cuibonobo - precisely. everything needs to have a thread back to the needs of the people (user-centered / use-case-centered design)
#tantek__AFAIK no one has implemented any form of "Undo" in their micropub clients - except maybe OpenBlog?
#cuibonobotantek__: RESTful architectures specifically push UI concerns to the client. your application needs to keep a cache of your recent operations and essentially PUT back any DELETEs, for example
#shanersThis whole To REST or Not To REST always feels religous to me. Like To DB or Not To DB.
snarfed joined the channel
#tantek__shaners - I think that's a misreading - of both debates, each of which cite *specific* problems / concerns / use-cases. not religous [sic]
#cuibonoboshaners: absolutely. and in the context of micropub specifically, REST doesn't make sense
#tantek__the static site use-case is a very good pragmatic reason against REST
#tantek__and use of "Undo" provides the flexibility of leaving state tracking up to the *server* rather than (any number of) clients
#KartikPrabhuhmm so now I should store history of changes somewhere too
#cuibonobotantek__: it's interesting you mention gmail. in the app, unsend doesn't *actually* unsend. the app is simply waiting a predetermined time before sending. once the email is actually sent, you're SOL
#tantek__cuibonobo re: "cache of your recent operations and essentially PUT back any DELETEs, for example" - in an unreliable network environment (the usual), that's not a reasonable assumption, especially without transactional integrity.
#cuibonobotantek__: your app shouldn't clear its history until it gets the 200 OK i would imagine
#tantek__I should be able to hit "Post" from my laptop, pack it up, walk away, realize, OOPS, open my mobile device, and press Undo.
#finchdundo with email is very hard, because allowing one user on this server to delete email (ostensibly the one they sent) from other people's inboxes on *all* other servers (or worse if they collect their mail on their personal machines (which may be offline)) is asking to get abused
#tantek__cuibonobo you're right - that's a new feature that I want for my own site
#finchdstoring all versions probably is the (between devices) answer, but only works on your site, it can't guarantee that it removes your POSSE/PESOS stuff from everywhere it got relayed to
#tantek__I was only using the gmail unsend example as a way of hinting at step one of this kind of user-model thinking
#tantek__finchd - hence delayed POSSE (as noted above), similar to delayed *actual* send
#tantek__I would also delay the PuSH and feed update as well
#cuibonoboin order to get undo from any device to work: create a post (version 1), delete the post (version 2), undo the delete (version 3 == restoring the data from version 1)
#KartikPrabhutantek__ just checked in Wordpress you can change the status of post from "Published" to "Draft" or "In Review" at any time
#tantek__except in actual UI terms, deleting and undoing a post have very different UX expectations
#finchdtantek__: ooh, sorry, yes. also DB-backed sites could delay display, then you could do inter-device time-limited undo
#tantek__e.g. undoing a post (send) drops you back into the editor
#tantek__finchd - should work with either DB-backend or file-storage backend - pretty sure that plumbing should be transparent for this use-case
#cuibonobotantek__: it's best for your editing app to work that out i think. no need to overload your data store with that knowledge
#tantek__cuibonobo - not overloading, point is that information has to be somewhere client-independent otherwise the UI can't work it out
#tantek__also you can always delete. point of undoing a post/send is that it's a time-limited operation.
#tantek__undoing a post != delete. they're very different from a UX perspective
#cuibonobobut why does your data store need to know anything about UX?
vanderwal joined the channel
#tantek__your data store needs to store whatever bits the UX needs to reconstruct the state for the user, that's why it cares.
#KevinMarks___Is quantum wavefunction collapse the expiry of the universe's undo buffer?
#tantek__Undo is hard UX. Perhaps why only gmail (in an extension no less) implements it in popular usage.
#cuibonoboyour editing application should be aware of the context in which the user performed an action by keeping a time-limited cache. my primary data store doesn't need to know about any of that.
#tantek__we only disagree about the time-limit being a cache. and being on the client vs. the server.
#KevinMarks___Well, Gdrive and macos /iOS are undo based filesystems now
#dlykeInteresting notion here of undo attached to a data store rather than a device... Although I'd suggest that some sites' time limited edit windows are similar...
#KevinMarks___The end of save and the addition of revert
moizsyed joined the channel
#cuibonobotantek__: ah. i realize why we disagree. "your data store needs to store whatever bits the UX needs to reconstruct the state for the user". in the interest of separation of concerns, i disagree with this.
#cuibonobobut i suppose you *could* store the state on the server!
#finchdcuibonobo: where else do you store something 2+ clients should know?
#KartikPrabhuthat is the thing with REST right? server does not store client states
#KevinMarks___This gets more important if it is a shared resource
#cuibonobofinchd: in the model that i proposed, the server would simply store all the different versions of a piece of content. it's up to the application to make sense of those versions to provide a meaningful experience
#KartikPrabhucuibonobo: possibly using timestamps to time-order from multiple clients?
#KevinMarks___And whether it stores them as snapshots or edits is invisible to the clients?
#KevinMarks___Then we get into operational transforms for edit order independence
#tantekcuibonobo: separation of concerns is only useful when it helps implementation practice - otherwise it leads down the horrible path of java-style seemingly infinite call stacks.
#tantekin this case, I'm positing that storing that information on the server (undo-ness, timing) actually simplifies implementation on both server and clients, likely improves reliability too. of course actual answers will have to await an actual implementation. so just opinion for now.
#tantekrecalls something about HTTP supposing to be stateless, implying all state stored on the server.
#cuibonobotantek: indeed! all state about the *resource* should live on the server, which is why i call it my 'point of truth'. application and user states are another thing entirely
#tantekI don't think users understand "application and user states" being different, thus just "state".
#tantekeven as someone who might understand "application and user states" being different, I don't want to have to think about that. I don't want that cognitive load in a user interface that I myself use.
#cuibonobotantek: if your application is well-designed, the user doesn't have to think about anything. server state lives on the server, application state lives on the application, and the user doesn't have to care about any of that
#tanteknetwork unreliability interferes with any chance of that
#cuibonoboif your application is well-designed, it will respond to server status codes and the like. just like everything else.
#cuibonobofor example, if i have my gmail app open and disconnect my internet, the app knows that it can no longer communicate with the server and lets me know
#KevinMarks___Which is easy for email, but harder for documents with shared edits
#LoqiVektra is a platform as a service (PaaS) that can be run locally on your own computer or "in the cloud" on a server http://indiewebcamp.com/Vektra
#shanersDoes Loqi truncate at the punctuation or at a character length?
#LoqiVektra is a (largely) Heroku-compatible platform as a service (PaaS) that can be run locally on your own computer or "in the cloud" on a server http://indiewebcamp.com/Vektra
#aaronpk_I hate this part of publishing new kinds of data. Whatever decision I make now is going to stick around for a long long time because it gets coded into things all over the place.
#tantekif you just want to make up names and change things as you go along *without* first doing/documenting research, then h-aaronpk-* and p-aaronpk-* go for it. implementation experiments are also useful (independent of research)
#aaronpk_I think I'm gonna just go with this as an implementation experiment
#dlykegregor`: Ugh, trying again... <img src=".*?\.jpg"> says "photo", u-featured says "this is a featured image", or this is a good image to use to represent the content on this page, or some other semantic meaning.
#gRegor`Just wondering about the use of "featured"
#gRegor`Seems broad. Featured image? Featured product?